package com.dd.cloud.user.DTO.common;

import com.dd.cloud.common.utils.AESUtil;
import com.dd.cloud.user.DTO.CallbackPresStatusReq;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

/**
 * 通用状态回调数据
 *
 * @author Lx
 * @version 1.0
 * @date 2023/8/16
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CommonStatusReportReq extends CallbackPresStatusReq implements Serializable {
    /**
     * 自定义参数 我方泽科平台自定义的加密参数
     */
    @NotBlank(message = "自定义加密参数不能为空")
    private String param;

    /**
     * 处方状态 2审核成功 21审核失败 3调剂 4复核 5泡药 6煎药 7包装
     */
    @NotBlank(message = "处方状态不能为空")
    private Integer status;

    /**
     * 第三方药房订单号 可不传
     */
    private String thirdPartyOrderNo;

    /**
     * 解密参数,是否被篡改信息
     *
     * @return false 解密失败 true 解密成功
     */
    public boolean decrypt() {
        try {
            System.out.println("param:" + this.param);
            this.param = AESUtil.decrypt(this.param, AESUtil.SECRET_KEY);
            System.out.println("param:" + this.param);
            if (this.param == null) {
                return false;
            }
        } catch (Exception e) {
            return false;
        }
        return true;
    }
}
